package com.spring.springv4;

import com.spring.springv3.Springv3Service;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

/**
 * @Description
 * @Author zhoucq
 * @Date 2025/9/18 15:40
 * @Version 1.0
 */
public class Springv4 {
    public static void main(String[] args) {
        //方式一：通过 xml配置文件配置定时任务注解驱动
        //步骤：
        //     先暂时注释掉 SpringConfiguration 类,防止通过注解扫码完成注入
        //     1 在 spring-service.xml 中配置定时任务注解驱动
        //     2 给Springv4Service类添加注解@Service,
        //     3 在 spring-service.xml 中配置配置开启注解驱动 <context:component-scan base-package="com.spring.springv4"/>
        //通过上面的三个步骤可以确保容器启动时会扫码扫Springv4Service类，并创建对象，并放入IOC容器中，
        // 并且会识别到方法reportCurrentTime的Scheduled注解
        // ApplicationContext context = new FileSystemXmlApplicationContext("classpath:spring/spring-service.xml");


        // 方式二：通过注解驱动配置定时任务
        //步骤：恢复 SpringConfiguration 类,通过注解扫码完成注入  去掉 Springv4Service类添的注解@Service,
        //      去掉配置文件中的<context:component-scan base-package="com.spring.springv4"/> 和 定时任务注解驱动
        // 1 在 SpringConfiguration 类中添加 @EnableScheduling注解
        ApplicationContext context = new AnnotationConfigApplicationContext(Springv4Config.class);
        Springv4Service springv4Service = context.getBean(Springv4Service.class);
    }
}
